﻿//using System.Data;
//using System.Data.OleDb;
//using Microsoft.VisualStudio.TestTools.UnitTesting;

//namespace InnovTech.Util.Test.Util
//{
//    /// <summary>
//    /// Summary description for TestOfficeUtil
//    /// </summary>
//    [TestClass]
//    public class TestOfficeUtil
//    {
//        public TestOfficeUtil()
//        {
//            //
//            // TODO: Add constructor logic here
//            //
//        }

//        private TestContext testContextInstance;

//        /// <summary>
//        ///Gets or sets the test context which provides
//        ///information about and functionality for the current test run.
//        ///</summary>
//        public TestContext TestContext
//        {
//            get
//            {
//                return testContextInstance;
//            }
//            set
//            {
//                testContextInstance = value;
//            }
//        }

//        #region Additional test attributes
//        //
//        // You can use the following additional attributes as you write your tests:
//        //
//        // Use ClassInitialize to run code before running the first test in the class
//        // [ClassInitialize()]
//        // public static void MyClassInitialize(TestContext testContext) { }
//        //
//        // Use ClassCleanup to run code after all tests in a class have run
//        // [ClassCleanup()]
//        // public static void MyClassCleanup() { }
//        //
//        // Use TestInitialize to run code before running each test 
//        // [TestInitialize()]
//        // public void MyTestInitialize() { }
//        //
//        // Use TestCleanup to run code after each test has run
//        // [TestCleanup()]
//        // public void MyTestCleanup() { }
//        //
//        #endregion

//        [TestMethod]
//        public void TestMethod1()
//        {
//            string excelPath = @"D:\test.xls";
//            DataSet data = new DataSet();
//            DataTable table = data.Tables.Add("mytable");

//            table.Columns.Add("en");
//            for(int i = 0; i < 10; i++)
//            {
//                table.Rows.Add(new object[] { i.ToString() });
//            }

//            ExcelLibrary.DataSetHelper.CreateWorkbook(excelPath, data);
//            //Wirte(excelPath, data, true);
//        }

//        public static void Wirte(string excelFile, DataSet data, bool withHeader)
//        {
//            DataSet ds = new DataSet();

//            OleDbConnection con = new OleDbConnection();
//            con.ConnectionString = "Data Source=" + excelFile +
//                ";Provider=Microsoft.Jet.OLEDB.4.0;";

//            if (withHeader)
//                con.ConnectionString += @"Extended Properties=""Excel 8.0;HDR=Yes""";
//            else
//                con.ConnectionString += @"Extended Properties=""Excel 8.0;HDR=No""";

//            con.Open();

//            OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", con);

//            int colCount = data.Tables[0].Columns.Count;

//            string insert = "INSERT INTO [Sheet1$] (";
//            for (int i = 0; i < colCount; i++)
//            {
//                insert += data.Tables[0].Columns[i].ColumnName;
//                insert += ",";
//            }
//            insert = insert.Substring(0, insert.Length - 1);
//            insert += ") VALUES (";
//            for (int i = 0; i < colCount; i++)
//            {
//                insert += "?,";
//            }
//            insert = insert.Substring(0, insert.Length - 1);
//            insert += ")";

//            adapter.InsertCommand = new OleDbCommand(insert, con);
//            OleDbParameter param = new OleDbParameter("@en", OleDbType.VarChar, 255, "en");
//            param.IsNullable = true;
//            adapter.InsertCommand.Parameters.Add(param);
//            DataTable table = data.Tables[0];
//            adapter.Update(data, "table");

//            //OleDbCommand com = new OleDbCommand("insert into [sheet1$] (en) values ('a')", con);
//            //com.ExecuteNonQuery();

//            con.Close();
//        }

//        static string testInsert = @"INSERT INTO [Sheet1$] IN 'D:\test.xls' 'Excel 8.0;' SELECT * FROM [table]";

//        public static DataSet ExcelToDataSet(string excelFile, bool withHeader)
//        {
//            DataSet ds = new DataSet();

//            OleDbConnection con = new OleDbConnection();
//            con.ConnectionString = "Data Source=" + excelFile +
//                ";Provider=Microsoft.Jet.OLEDB.4.0;";

//            if (withHeader)
//                con.ConnectionString += @"Extended Properties=""Excel 8.0;HDR=Yes""";
//            else
//                con.ConnectionString += @"Extended Properties=""Excel 8.0;HDR=No""";

//            con.Open();
//            System.Data.DataTable sheets = con.GetOleDbSchemaTable(
//                OleDbSchemaGuid.Tables,
//                new object[] { null, null, null, "TABLE" });

//            foreach (DataRow sheet in sheets.Rows)
//            {
//                string tableName = sheet["Table_Name"].ToString();
//                string sql = "SELECT * FROM [" + tableName + "]";
//                OleDbDataAdapter adap = new OleDbDataAdapter(sql, con);
//                adap.Fill(ds, tableName);
//            }

//            con.Close();
//            return ds;
//        }
//    }
//}
